package com.zhihesj.anan.base.controller;


import com.sun.corba.se.spi.ior.Identifiable;
import com.zhihesj.anan.message.Message;

import javax.xml.transform.Result;
import java.awt.print.Pageable;

/**
 * @author anan.
 * @version 1.0
 * @create 2020-05-30 16-08
 */
public interface BaseController<T extends Identifiable,Q extends T> {

    /**
     * 根据ID列表删除对象，如果idList 为空或者空列表则直接返回{@link Result},状态为OK
     */
    public Message deleteList(String[] ids);

    /**
     * 删除一条记录
     */
    public Message deleteOne(String id);

    /**
     * 添加一条实体，实体不能为null
     */
    public Message addOne(T entity);

    /**
     * 跳转到添加页面为insertXXX页面<br>示例Bean对象:SysDictionay->生成路径：/sys/dictionary
     */
    public Message addView();

    /**
     * 查询对象列表，返回页面 listXXX页面
     */
    public Message selectList(Q query, Pageable pageable);

    /**
     * 根据ID查询一个对象，返回页面为viewXXX页面
     */
    public Message viewOne(String id);

    /**
     * 更新一个实体，实体不能为null
     */
    public Message editOne(T entity);

    /**
     * 跳转到更新页面为editXXX页面
     */
    public Message editView(String id);

    /**
     * ajax Post添加数据
     */
    public Message postAdd(T entity);

    /**
     * ajax Post修改数据
     */
    public Message postEdit(T entity);

}
